#include"comm.hpp"
#include<unistd.h>

//客户端用来获取共享内存
//要求client来写入数据
//客户端就不用回收共享空间了，这个工作交给服务端来做
int main(){
    //1：获取key
    key_t key = getKey();
    printf("client key: 0x%x\n",key);

    //2：开始获取共享内存
    int shmid = getshm(key);
    printf("server的标识数:%d\n",shmid);


    //3：将进程和共享内存关联起来
    char* start = (char*)attachShm(shmid);
    printf("挂接成功，客户端挂接到的初始地址是:%p\n",start);
    sleep(5);

    //pid count message
    const char* message = "你好，服务端，我是另一个进程，正在和你通信";
    char buffer[1024];
    int cnt = 0;
    while(true){
        cnt++;
        //这里可以直接往初始地址打印数据
        snprintf(start,MAX_SIZE,"%s[pid:%d][消息编号:%d]",message,getpid(),cnt);
        // snprintf(buffer,sizeof(buffer),"%s[pid:%d][消息编号:%d]",message,getpid(),cnt);
        // memcpy(start,buffer,strlen(buffer));
        sleep(5);

    }





    //4：去关联性
    detachShm(start);
    sleep(5);





    return 0;
}